_gtk_header_bar_update_window_buttons (GtkHeaderBar *bar)
{
GtkHeaderBarPrivate *priv = gtk_header_bar_get_instance_private (bar);
- GtkWidget *widget = GTK_WIDGET (bar);
+ GtkWidget *widget = GTK_WIDGET (bar), *toplevel;
GtkWindow *window;
GtkTextDirection direction;
gchar *layout_desc;
gboolean shown_by_shell;
GdkWindowTypeHint type_hint;
- if (!gtk_widget_get_realized (widget))
+ toplevel = gtk_widget_get_toplevel (widget);
+ if (!gtk_widget_is_toplevel (toplevel))
return;
if (priv->titlebar_start_box)
layout_desc = g_strdup (priv->decoration_layout);
}
- window = GTK_WINDOW (gtk_widget_get_toplevel (widget));
+ window = GTK_WINDOW (toplevel);
if (!shown_by_shell && gtk_window_get_application (window))
menu = gtk_application_get_app_menu (gtk_window_get_application (window));
G_CALLBACK (_gtk_header_bar_update_window_buttons), widget);
g_signal_connect_swapped (settings, "notify::gtk-decoration-layout",
G_CALLBACK (_gtk_header_bar_update_window_buttons), widget);
- _gtk_header_bar_update_window_buttons (GTK_HEADER_BAR (widget));
}
static void
GtkWidget *previous_toplevel)
{
GtkWidget *toplevel;
+ GtkHeaderBar *bar = GTK_HEADER_BAR (widget);
toplevel = gtk_widget_get_toplevel (widget);
if (toplevel)
g_signal_connect_after (toplevel, "window-state-event",
G_CALLBACK (window_state_changed), widget);
+
+ _gtk_header_bar_update_window_buttons (bar);
}
static void